
package com.ufps.cuatro.modelo.old;

import com.ufps.cuatro.modelo.representacion.PropiedadBeans;
import com.ufps.cuatro.modelo.representacion.UtilRepresentacion;
import com.ufps.cuatro.modelo.representacion.componente.ComponenteDistribuidor;
import java.io.File;
import java.util.ArrayList;

import com.ufps.cuatro.util.base.ObjectBase;

/**
 *
 * @author Carlos A. Torres C
 * @deprecated Implementación Cancelada.. 
 */
public class ComponenteBeans extends ObjectBase{
    private static final long serialVersionUID = 5571301557637498034L;
    
    /**
     * 
     */
    public final static int BEANS_INDEFINIDO = 0;
    /**
     * 
     */
    public final static int BEANS_SIMPLE_PRIMITIVO = 1;
    /**
     * 
     */
    public final static int BEANS_SIMPLE_JDK = 2;
    /**
     * 
     */
    public final static int BEANS_COMPUESTO = 3;  
    
    /**
     * 
     */
    public final static int TO_STRING_SUPER = 0;
    /**
     * 
     */
    public final static int TO_STRING_ARRAY = 1;
    /**
     * 
     */
    public final static int TO_STRING_STRING = 2;    
    
    private ComponenteDistribuidor objComponenteDistribuidor;
    private ArrayList<PropiedadBeans> objPropiedadesStaticSimpleBeans;
    private ArrayList<ComponenteBeans> objPropiedadesStaticObjectBeans;
    private int modo = BEANS_INDEFINIDO;
    private int modoToString = TO_STRING_SUPER;
    private String toString = "";
    private String strName;
    private File objFileOutput = null;
    private String strPackage = UtilRepresentacion.strPackageRootGUIBeans;

    /**
     * 
     * @param objComponenteDistribuidor
     */
    public ComponenteBeans(ComponenteDistribuidor objComponenteDistribuidor) {
        this.strName = objComponenteDistribuidor.getName() + "Beans";
        this.objComponenteDistribuidor = objComponenteDistribuidor;
        this.objPropiedadesStaticSimpleBeans = new ArrayList<PropiedadBeans>();
        this.objPropiedadesStaticObjectBeans = new ArrayList<ComponenteBeans>();
    }

    /**
     * 
     * @return
     */
    public int getModo() {
        return modo;
    }

    /**
     * 
     * @param modo
     */
    public void setModo(int modo) {
        this.modo = modo;
    }

    /**
     * 
     * @return
     */
    public int getModoToString() {
        return modoToString;
    }

    /**
     * 
     * @param toString
     */
    public void setModoToString(int toString) {
        this.modoToString = toString;
    }

    public String getToString() {
        return toString;
    }

    public void setToString(String toString) {
        this.toString = toString;
    }
    
    

    /**
     * 
     * @return
     */
    public ComponenteDistribuidor getObjComponenteDistribuidor() {
        return objComponenteDistribuidor;
    }

    /**
     * 
     * @param objComponenteDistribuidor
     */
    public void setObjComponenteDistribuidor(ComponenteDistribuidor objComponenteDistribuidor) {
        this.objComponenteDistribuidor = objComponenteDistribuidor;
    }

    /**
     * 
     * @return
     */
    public ArrayList<PropiedadBeans> getObjPropiedadesStaticSimpleBeans() {
        return objPropiedadesStaticSimpleBeans;
    }

    /**
     * 
     * @param objPropiedades
     */
    public void setObjPropiedadesStaticSimpleBeans(ArrayList<PropiedadBeans> objPropiedades) {
        this.objPropiedadesStaticSimpleBeans = objPropiedades;
    }

    /**
     * 
     * @return
     */
    public ArrayList<ComponenteBeans> getObjPropiedadesStaticObjectBeans() {
        return objPropiedadesStaticObjectBeans;
    }

    /**
     * 
     * @param objPropiedadesStaticObjectBeans
     */
    public void setObjPropiedadesStaticObjectBeans(ArrayList<ComponenteBeans> objPropiedadesStaticObjectBeans) {
        this.objPropiedadesStaticObjectBeans = objPropiedadesStaticObjectBeans;
    }
    
    /**
     * 
     * @param objComponenteBeans
     * @return
     */
    public boolean add(ComponenteBeans objComponenteBeans){
        objComponenteBeans.idColeccion = this.objPropiedadesStaticObjectBeans.size();
        return this.objPropiedadesStaticObjectBeans.add(objComponenteBeans);
    }
    
    /**
     * 
     * @param objPropiedadBeans
     * @return
     */
    public boolean add(PropiedadBeans objPropiedadBeans){
        objPropiedadBeans.idColeccion = this.objPropiedadesStaticSimpleBeans.size();        
        return this.objPropiedadesStaticSimpleBeans.add(objPropiedadBeans);
    }
    
    /**
     * 
     * @param objPropiedadBeans
     * @return
     */
    public boolean remove(PropiedadBeans objPropiedadBeans){
        return this.objPropiedadesStaticSimpleBeans.remove(objPropiedadBeans);
    }

    @Override
    public String toString() {
        return strName + idColeccion + " : " + strName;
    }
    
    public String toGenericString() {
        return toString() + ".toString()";
    }

    /**
     * 
     * @return
     */
    public String getName() {
        return strName;
    }

    /**
     * 
     * @param strName
     */
    public void setStrName(String strName) {
        this.strName = strName;
    }
    
    /**
     * Devuelve el Archivo de Salida del Código Fuente.
     * @return Archivo de Salida del Código Fuente.
     */
    public File getObjFileOutput() {
        return objFileOutput;
    }

    /**
     * Establece el Archivo de Salida del Código Fuente.
     * @param objFileOutput Archivo de Salida del Código Fuente.
     */
    public void setObjFileOutput(File objFileOutput) {
        this.objFileOutput = objFileOutput;
    }

    public String getStrPackage() {
        return strPackage;
    }

    public void setStrPackage(String strPackage) {
        this.strPackage = strPackage;
    }
    
    
}
